জাভাস্ক্রিপ্টে অবজেক্ট এক্সেসর বলতে মূলত গেটার (Getter) এবং সেটার (Setter) মেথডগুলিকে বোঝানো হয়। এগুলো অবজেক্টের প্রোপার্টি গুলোর মান পড়া এবং সেট করার জন্য ব্যবহৃত হয়, কিন্তু সরাসরি প্রোপার্টি অ্যাক্সেসের পরিবর্তে নির্দিষ্ট লজিক বা যাচাইকরণ প্রক্রিয়া যুক্ত করতে সাহায্য করে।
গেটার মেথড অবজেক্টের একটি প্রোপার্টির মান রিটার্ন করতে ব্যবহৃত হয়। এটি প্রোপার্টি অ্যাক্সেস করার সময় কিছু অতিরিক্ত লজিক প্রয়োগ করতে সহায়ক।
const person = {
firstName: "Alice",
lastName: "Johnson",
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
};
console.log(person.fullName); // আউটপুট: Alice Johnson
এখানে, fullName
একটি গেটার মেথড যা firstName
এবং lastName
প্রোপার্টি থেকে পূর্ণ নাম তৈরি করে রিটার্ন করে।
সেটার মেথড অবজেক্টের একটি প্রোপার্টির মান সেট করতে ব্যবহৃত হয়। এটি প্রোপার্টি আপডেট করার সময় কিছু অতিরিক্ত লজিক বা যাচাইকরণ প্রক্রিয়া প্রয়োগ করতে সাহায্য করে।
const person = {
firstName: "Alice",
lastName: "Johnson",
set fullName(name) {
const parts = name.split(' ');
this.firstName = parts[0];
this.lastName = parts[1];
}
};
person.fullName = "Bob Smith";
console.log(person.firstName); // আউটপুট: Bob
console.log(person.lastName); // আউটপুট: Smith
এখানে, fullName
একটি সেটার মেথড যা পূর্ণ নাম থেকে firstName
এবং lastName
প্রোপার্টি আলাদা করে সেট করে।
গেটার এবং সেটার একসাথে ব্যবহার করে অবজেক্টের প্রোপার্টি অ্যাক্সেস এবং ম্যানিপুলেশনকে আরও শক্তিশালী ও নিয়ন্ত্রিত করা যায়।
const rectangle = {
width: 10,
height: 5,
get area() {
return this.width * this.height;
},
set area(value) {
// প্রোপার্টির এলাকা সেট করার জন্য উচ্চতা নির্ধারণ করা
this.height = value / this.width;
}
};
console.log(rectangle.area); // আউটপুট: 50
rectangle.area = 100;
console.log(rectangle.height); // আউটপুট: 10
এখানে, area
একটি গেটার এবং সেটার মেথডের সমন্বয়ে কাজ করে। গেটার মেথড এলাকা রিটার্ন করে এবং সেটার মেথড এলাকা সেট করার সময় উচ্চতা নির্ধারণ করে।
সেটার মেথড ব্যবহার করে প্রোপার্টির মান যাচাই করা যায়।
const user = {
_age: 25,
get age() {
return this._age;
},
set age(value) {
if (value < 0) {
console.error("Age cannot be negative.");
} else {
this._age = value;
}
}
};
user.age = 30;
console.log(user.age); // আউটপুট: 30
user.age = -5; // আউটপুট: Age cannot be negative.
গেটার এবং সেটার ব্যবহার করে ডেটাকে প্রয়োজন অনুযায়ী ট্রান্সফর্ম করা যায়।
const person = {
firstName: "Alice",
lastName: "Johnson",
get fullName() {
return `${this.firstName} ${this.lastName}`;
},
set fullName(name) {
const parts = name.split(' ');
this.firstName = parts[0];
this.lastName = parts[1];
}
};
console.log(person.fullName); // আউটপুট: Alice Johnson
person.fullName = "Bob Smith";
console.log(person.firstName); // আউটপুট: Bob
console.log(person.lastName); // আউটপুট: Smith
_
) ব্যবহার করুন যাতে গেটার এবং সেটার স্পষ্টভাবে পৃথক করা যায়।জাভাস্ক্রিপ্টে অবজেক্ট এক্সেসর, বিশেষ করে গেটার এবং সেটার মেথড, অবজেক্টের প্রোপার্টি অ্যাক্সেস এবং ম্যানিপুলেশনকে আরও নিয়ন্ত্রিত এবং শক্তিশালী করে তোলে। এগুলো ডেটা ভ্যালিডেশন, ডেটা ট্রান্সফরমেশন, এবং ডেটা এনক্যাপসুলেশন নিশ্চিত করতে সহায়ক। সঠিকভাবে গেটার এবং সেটার ব্যবহার করলে কোডের মান এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি পায়। তবে, এগুলো ব্যবহার করার সময় কিছু সীমাবদ্ধতা এবং সতর্কতা মেনে চলা জরুরি। গেটার এবং সেটার এর মাধ্যমে অবজেক্টের প্রোপার্টি ম্যানেজমেন্ট আরও কার্যকর ও নির্ভরযোগ্য হয়, যা উন্নতমানের এবং রক্ষণাবেক্ষণযোগ্য অ্যাপ্লিকেশন তৈরিতে সহায়ক হয়।
common.read_more